Most modern video coding standards employ various coding modes to efficiently reduce the correlations in the spatial and temporal domains. In the International Organization for Standardization/International Electromechanical Commission (ISO/IEC) Moving Picture Experts Group-4 (MPEG-4) Part 10 Advanced Video Coding (AVC) Standard/International Telecommunication Union, Telecommunication Sector (ITU-T) H.264 Recommendation (hereinafter the “MPEG-4 AVC Standard”), a picture can be intra or inter coded. In intra pictures, all macroblocks (16×16) are coded in intra modes that exploit spatial correlations in the picture. For intra luma coding, intra modes can be classified into the following three partition types: INTRA4×4; INTRA8×8; and INTRA16×16. INTRA4×4 uses a 4×4 discrete cosine transform (DCT) transform. INTRA8×8 uses 8×8 transforms. INTRA16×16 uses a 4×4 integer DCT cascaded with a 4×4 DC Hadamard transform. For intra chroma coding, only one partition type is allowed. Each 8×8 chroma component of an intra coded macroblock is predicted with 4 intra prediction modes and uses a 4×4 integer DCT cascaded with a 2×2 DC Hadamard transform. The chroma partition type is fixed irrespective of the luma partition type.
When using a larger block size (e.g., 8×8 or 16×16) for intra prediction of the chroma component, there is a need to filter the pixels used for the prediction. This filtering process smoothes the prediction signal and eliminates some noise. In the luma component, large block sizes use a low-pass linear filter with taps equal to [1 2 1]/4. The filtering improves the quality of the prediction, thus increasing the efficiency of the video coding. However, we have observed that the same filter applied to the chroma components does not provide the same benefits. The objective distortion (PSNR) does not decrease, while the subjective quality is worse.
MPEG-4 AVC Standard Intra Coding
The MPEG-4 AVC Standard uses intra modes to exploit spatial correlations in the picture. For intra luma coding, intra modes can be classified into three types: INTRA4×4, INTRA8×8, and INTRA16×16. INTRA4×4 and INTRA8×8 support 9 intra prediction modes and INTRA16×16 supports 4 intra prediction modes. Since the basic coding unit in the MPEG-4 AVC Standard is a macroblock, i.e., the size is 16×16, the partition types inside a macroblock are either all 16×16, 8×8 or 4×4. There are no mixed partition types inside a macroblock. As noted above, INTRA4×4 uses a 4×4 DCT transform, INTRA8×8 uses 8×8 transforms, and INTRA16×16 uses cascaded 4×4 transforms. For the signaling, INTRA4×4 and INTRA8×8 share the same macroblock type (mb_type 0) and they are differentiated by a transform size flag (transform_8×8_size_flag). Then, the choice of intra prediction mode in INTRA4×4 or INTRA8×8 is signaled by the most probable mode possibly with remaining mode if necessary. For example, for the 4×4 case, the encoder sends a flag for each 4×4 block called prev_intra4×4_pred_mode. If the flag is equal to “1”, then the most probable prediction mode is used. Otherwise, if the flag is equal to “0”, then another parameter rem_intra4×4_pred_mode is sent to indicate a change of mode. For INTRA16×16, all of the intra prediction modes along with the coded block pattern (cbp) type are signaled in mb_type, which uses a value for mb_type from 1 to 24. For intra chroma coding, each 8×8 chroma component of an intra coded macroblock is predicted using 4 intra prediction modes, i.e., each 8×8 chroma component is split and uses a 4×4 integer DCT cascaded with a 2×2 DC Hadamard transform. Intra chroma coding is fixed independent of the luma partition type. Infra chroma coding does not adapt to the content, thus reducing the fidelity of chroma coding.
In the case of the 4:4:4 format of the MPEG-4 AVC Standard, intra luma partition types and prediction modes can all be used for all three color components. Common mode and independent mode are supported. In the common mode, all three components share the exact same information as the luma component, including partition type and prediction modes. In the independent mode, the three color components are coded as separate planes, using the same coding method as the luma plane.
Intra Partitions in Extensions of the MPEG-4 AVC Standard
In a first known approach, the prediction block unit is extended for intra coding by increasing the number of intra direction modes to more than 9. The chroma case is not contemplated or considered. Furthermore, in a second prior art approach, the chroma partition type is fixed to be Chroma_8×8, the same as in the MPEG-4 AVC Standard. Moreover, in the second prior art approach, intra prediction modes and transforms are kept the same as luma intra_16×16, intra_8×8, and intra_4×4 in the MPEG-4 AVC Standard, i.e., using 4 chroma prediction modes and a cascaded 4×4 transform. For intra_32×32, chroma uses 4 chroma prediction modes and a cascaded 8×8 transform. A very simple low pass filter is applied to the neighboring pixels used for prediction prior to the prediction being generated there from.
Thus, the current filtering of chroma components in accordance with the prior art is at least deficient in that it uses the same filtering for both luma and chroma which can detrimentally affect the subjective quality of the resultant video. Moreover, the filtering for the chroma is fixed, thus not being adaptable to the video content.